#pragma once

/**
 * 用于在驱动内以及应用层共享的定义
 * This module contains the common declarations shared by driver and user applications.
 * 比如：
 * 1、驱动的 GUID
 * 2、驱动文件支持的 IOCTL 指令及参数等
 * 3、其它与驱动功能、业务相关定义等
 */

//
// Define an Interface Guid so that apps can find the device and talk to it.
//

// 驱动的 GUID = {72ae347e-2bf6-48b3-8e2b-0d7b4228d4f8}
// 应用层应使用此 GUID 查找并使用对应的设备
DEFINE_GUID(GUID_DEVINTERFACE_zyhello, 0x72ae347e, 0x2bf6, 0x48b3, 0x8e, 0x2b, 0x0d, 0x7b, 0x42, 0x28, 0xd4, 0xf8);

#define DEF_IOCTL(index) CTL_CODE(FILE_DEVICE_UNKNOWN, index, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZYHELLO_GET_VERSION		DEF_IOCTL(0x0)
#define IOCTL_ZYHELLO_SET_READ_TIMEOUT	DEF_IOCTL(0x1)
#define IOCTL_ZYHELLO_SET_WRITE_TIMEOUT	DEF_IOCTL(0x2)
